/**
 * @brief 基础接口定义
 * @version 1.0
 * @author 宋炜
 * @date 2023-08-25
 */

#pragma once

class dataCh;

enum class mandaravaEvtID
{
	EVT_DATA,             // 
	EVT_MSG,              // udp 协议中需要标记来源
	EVT_CLOSE,
	EVT_ERROR,
	EVT_CONNECTED,
	EVT_OPEN,
	EVT_DISCONNECTED
};


struct mandaravaItfc
{
	virtual ~mandaravaItfc(){}
	
	virtual bool addChannel( dataCh * ch ) = 0;
	/**
	 * @brief 删除通道
	 */
	virtual bool eraseChannel( dataCh * ch ) = 0;
	/**
	 * @brief 启动运行或者停止运行
	 * @param sw[ I ], 开关
	 * @param overtime[ I ], 等候超时时间
	 */
	virtual void run( bool sw , long overtime = 200 ) = 0;
};
